package com.hadoop.mr.wordcount;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

/**
 * 1.一个类继承Reducer，变成一个reducer组件类
 * 2.Reducer组件会接收Mapper组件的输出结果
 * 3.第一个泛型类型对应的是Mapper输出的key类型,第二个泛型类型对应Mapper输出value
 * 4.第三个泛型类型和第四个是Reducer输出的key，value类型，这不固定，根据业务决定
 * 5.Reducer组件不能单独存在，因为要接受Mapper的输出结果。而Mapper组件是可以单独存在的
 * 6.当引入Reducer组件后，输出结果文件的结果就是Reducer的输出k,v。
 * 
 * @author ysq
 * hello 4
 * world 2
 * 
 *
 */
public class WordCountReducer extends Reducer<Text, IntWritable,Text,IntWritable>{
	@Override
	protected void reduce(Text key, Iterable<IntWritable> values,
			Reducer<Text, IntWritable, Text, IntWritable>.Context context) throws IOException, InterruptedException {
		int count=0;
		for(IntWritable value:values){
			count=count+value.get();
		}
		context.write(key, new IntWritable(count));
	}
	
	
}
